Simplify arbitrary_virt_to_phys, and fix the x86/64 version to mask
authorkaf24@firebug.cl.cam.ac.uk <kaf24@firebug.cl.cam.ac.uk>
Fri, 18 Nov 2005 16:41:03 +0000 (17:41 +0100)
committerkaf24@firebug.cl.cam.ac.uk <kaf24@firebug.cl.cam.ac.uk>
Fri, 18 Nov 2005 16:41:03 +0000 (17:41 +0100)
out the NX bit.

Signed-off-by: Keir Fraser <keir@xensource.com>
linux-2.6-xen-sparse/include/asm-xen/asm-i386/pgtable.h
linux-2.6-xen-sparse/include/asm-xen/asm-x86_64/pgtable.h

index 61b0d4e806a53c522eeec09b960088034f128514..e8596b14ef4f709e32c6170c75352728854bb2ca 100644 (file)
@@ -438,9 +438,8 @@ void make_pages_writable(void *va, unsigned int nr);
 
 #define arbitrary_virt_to_machine(__va)                                        \
 ({                                                                     \
-       pte_t *__pte = virt_to_ptep(__va);                              \
-       maddr_t __pa = (maddr_t)pte_mfn(*__pte) << PAGE_SHIFT;          \
-       __pa | ((unsigned long)(__va) & (PAGE_SIZE-1));                 \
+       maddr_t m = (maddr_t)pte_mfn(*virt_to_ptep(__va)) << PAGE_SHIFT;\
+       m | ((unsigned long)(__va) & (PAGE_SIZE-1));                    \
 })
 
 #endif /* !__ASSEMBLY__ */
index b9afd90123733b398950d2520be6e8176f237c64..d6bdf76e00573e0b1d227ed65f76a7981425f7e4 100644 (file)
@@ -29,9 +29,8 @@ extern void xen_init_pt(void);
 
 #define arbitrary_virt_to_machine(__va)                                        \
 ({                                                                     \
-       pte_t *__pte = virt_to_ptep(__va);                              \
-       unsigned long __pa = (*(unsigned long *)__pte) & PAGE_MASK;     \
-       __pa | ((unsigned long)(__va) & (PAGE_SIZE-1));                 \
+       maddr_t m = (maddr_t)pte_mfn(*virt_to_ptep(__va)) << PAGE_SHIFT;\
+       m | ((unsigned long)(__va) & (PAGE_SIZE-1));                    \
 })
 #endif